Crate addr[−][src]
Robust domain name parsing using the Public Suffix List
This library allows you to easily and accurately parse any given domain name.
Examples
use addr::parser::{DomainName, DnsName}; use addr::psl::List; // You can find out the root domain // or extension of any given domain name let domain = List.parse_domain_name("www.example.com")?; assert_eq!(domain.root(), Some("example.com")); assert_eq!(domain.suffix(), "com"); let domain = List.parse_domain_name("www.食狮.中国")?; assert_eq!(domain.root(), Some("食狮.中国")); assert_eq!(domain.suffix(), "中国"); let domain = List.parse_domain_name("www.xn--85x722f.xn--55qx5d.cn")?; assert_eq!(domain.root(), Some("xn--85x722f.xn--55qx5d.cn")); assert_eq!(domain.suffix(), "xn--55qx5d.cn"); let domain = List.parse_domain_name("a.b.example.uk.com")?; assert_eq!(domain.root(), Some("example.uk.com")); assert_eq!(domain.suffix(), "uk.com"); let name = List.parse_dns_name("_tcp.example.com.")?; assert_eq!(name.suffix(), Some("com.")); // In any case if the domain's suffix is in the list // then this is definately a registrable domain name assert!(domain.has_known_suffix());
Modules
dns | DNS types |
domain | Domain name types |
Email address types | |
error | The errors returned by this crate |
net | Network types |
parser | Parser traits |
psl | The default implementation of the public suffix list this crate uses |
Type Definitions
Result | Custom result type |